Skip to content

Add Java and Python memory stores with composable decorators - #3

Merged
sfloess merged 24 commits into
mainfrom
feat/memory-service-foundation
Oct 20, 2026
Merged

sfloess merged 24 commits into
mainfrom
feat/memory-service-foundation

Conversation

@sfloess

@sfloess sfloess commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Closes #2.

Summary

  • Add a minimal Java 17 MemoryStore contract with RAM and filesystem implementations.
  • Add a delegating decorator and RAM read-through/write-through cache decorator.
  • Add a Python 3.10+ implementation with matching RAM, filesystem, and decorator behavior.
  • Add contract tests for RAM/filesystem backends and decorator tests in both languages.
  • Document the storage contract, filesystem assumptions, cache coherence, lifecycle ownership, and cross-language parity in README and ADR-0002.
  • Add GitHub Actions CI for Maven tests and Python unittest discovery.

Design notes

  • Filesystem IDs are hex-encoded, never interpreted as paths.
  • Filesystem writes use temporary files and atomic replacement where supported.
  • No framework, ORM, database, or cache library is introduced.
  • Filesystem stores are intended for single-process use; independent-process coordination is out of scope.
  • The outermost decorator owns and closes the wrapped store.
  • This is a storage foundation, not the remote REST service contract or retrieval/ranking implementation.

Validation

Test suites and CI workflow are included. They have not yet been confirmed green, so keep this PR in draft until CI executes successfully.

@sfloess
sfloess marked this pull request as ready for review October 20, 2026 08:07
@sfloess
sfloess merged commit 4125ce1 into main Oct 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement minimal RAM and filesystem stores with composable decorators

1 participant